
def sethourly():

@require_http_methods(["GET"])
def gethourly(request):
    # 从Redis中获取数据
    data = redis_client.get('hourly_data')
    if data:
        formatted_data = json.loads(data)
    else:
        # 如果Redis中没有数据，则调用sethourly方法生成数据并存储到Redis中
        sethourly(request)  # 修改: 传递request参数
        formatted_data = json.loads(redis_client.get('hourly_data'))
    return JsonResponse(formatted_data, safe=False, json_dumps_params={'ensure_ascii': False})

@require_http_methods(["GET"])
def sethourly(request):
    # 调用sethourly方法来生成并存储数据
    df = load_data()
    model = train_model(df)
    forecast = predict(model)

    # 只保留最后48条记录
    forecast = forecast.tail(48)

    # 将DataFrame转换为适合ECharts的数据格式
    data = forecast.to_dict(orient='records')
    formatted_data = [
        {
            'date': row['ds'].strftime('%Y-%m-%d %H:%M:%S'),
            'value': row['yhat'],
            'l': row['yhat_lower'],
            'u': row['yhat_upper']
        }
        for row in data
    ]

    # 将数据存储到Redis中
    redis_client.set('hourly_data', json.dumps(formatted_data))
    return JsonResponse({'status': 'Data updated'}, json_dumps_params={'ensure_ascii': False})
